home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 114 / CDRom114.iso / internet / extens / dband / Bandwidth Tester.xpi / chrome / bandwidthtest.jar / content / autoupdate.js next >
Encoding:
Text File  |  2004-09-07  |  2.6 KB  |  79 lines

  1.     
  2. const sThisVersion    = 0.4;
  3. const sProdName        = "bandwidthtest"
  4. const iRand            = Math.round(Math.random() * 200);
  5. const sRdfUri         = "http://jgillick.nettripper.com/plugins.rdf?p="+ sProdName +"&rand="+ iRand;
  6. const sProductUri    = "http://jgillick.nettripper.com/rdf/"+ sProdName;
  7. const sDialogUrl    = "chrome://"+ sProdName +"/content/update_dialog.xul"
  8. const sDownloadSite    = "jgillick.nettripper.com/"+ sProdName +"/";
  9.  
  10. function bandwidthtest_autoUpdate(){
  11.     try{
  12.         //Alert User
  13.         var oPrefs    = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
  14.         if(!oPrefs.prefHasUserValue(sProdName +".update.notify") || oPrefs.getBoolPref(sProdName +".update.notify")){
  15.         
  16.             //Has 24 hours past since last notification
  17.             var iYesterday = ((new Date()).getTime() / 1000) - 86400;
  18.             if( (!oPrefs.prefHasUserValue(sProdName +".update.notify.time") || oPrefs.getIntPref(sProdName +".update.notify.time") <= iYesterday)
  19.                 && (sXpi = bandwidthtest_needsUpgrade()) != false){
  20.             
  21.                 //Update timestamp
  22.                 oPrefs.setIntPref(sProdName +".update.notify.time", ((new Date()).getTime() / 1000));
  23.                 
  24.                 //Show Notification Dialog
  25.                 window.openDialog(sDialogUrl, sProdName +"Update","centerscreen, chrome, modal", sXpi.Value);
  26.             }
  27.             
  28.         }
  29.         
  30.     }catch(err){}
  31. }
  32.  
  33. //If there is a new version, returns the XPI url, else returns false
  34. function bandwidthtest_needsUpgrade(){
  35.     
  36.     try{
  37.         // Get current version and XPI from remote RDF
  38.         var oRdf            = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
  39.         var oDs                = oRdf.GetDataSourceBlocking(sRdfUri);
  40.         var oProduct        = oRdf.GetResource(sProductUri);
  41.                 
  42.         var sVersion        = oDs.GetTarget(oProduct, oRdf.GetResource("http://jgillick.nettripper.com/rdf#version"), true);
  43.         var sXpi            = oDs.GetTarget(oProduct, oRdf.GetResource("http://jgillick.nettripper.com/rdf#xpi"), true);
  44.         
  45.         //Not literals
  46.         if( !(sVersion instanceof Components.interfaces.nsIRDFLiteral)
  47.             || !(sXpi instanceof Components.interfaces.nsIRDFLiteral)){
  48.             return false;
  49.         }
  50.         //No Update
  51.         else if(sThisVersion >= sVersion.Value){
  52.             return false
  53.         }
  54.         else{
  55.             return sXpi;
  56.         }
  57.     }catch(err){ return false; }
  58. }
  59.  
  60. //The user selects to check for updates
  61. function bandwidthtest_manualUpgradCheck(){
  62.     
  63.     var sXpi = bandwidthtest_needsUpgrade();
  64.     
  65.     if(sXpi != false){
  66.         if(confirm("An upgrade exists.\nWould you like to install it now?")){
  67.             try{
  68.                 var aInstall = new Array();
  69.                 aInstall[sProdName] = sXpi;
  70.                 InstallTrigger.install(aInstall, null);
  71.                 
  72.             }catch(err){ alert("An error occurred") }
  73.         }
  74.     }
  75.     else{
  76.         alert( "No upgrades currently exist" );
  77.     }
  78.  
  79. }